package cn.iocoder.yudao.module.crossborder.platform.service.provider.base;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 数据同步提供商抽象基类
 *
 * @author 芋道源码
 */
public abstract class BaseSyncProvider {

    /**
     * 同步订单数据
     *
     * @param storeId 店铺ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 同步结果
     */
    public abstract Map<String, Object> syncOrders(Long storeId, LocalDateTime startTime, LocalDateTime endTime);

    /**
     * 同步商品数据
     *
     * @param storeId 店铺ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 同步结果
     */
    public abstract Map<String, Object> syncProducts(Long storeId, LocalDateTime startTime, LocalDateTime endTime);

    /**
     * 同步库存数据
     *
     * @param storeId 店铺ID
     * @return 同步结果
     */
    public abstract Map<String, Object> syncInventory(Long storeId);

    /**
     * 获取同步状态
     *
     * @param taskId 任务ID
     * @return 同步状态
     */
    public abstract Map<String, Object> getSyncStatus(Long taskId);

    /**
     * 取消同步任务
     *
     * @param taskId 任务ID
     * @return 取消结果
     */
    public abstract boolean cancelSyncTask(Long taskId);

}
